package com.ruoyi.eqmonitor.dtos;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;
import com.ruoyi.system.api.domain.SysFile;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 设备参数实体
 */
@EqualsAndHashCode(callSuper = true)
@Data
public class OptDeviceDto extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /** 编号 */
    @TableId(value = "id",type = IdType.AUTO)
    private Long id;
    private Boolean isAlarm;
    /** 设备名称 */
    @Excel(name = "设备名称")
    private String deviceName;

    private String name;
    
    @Excel(name = "设备类型名称")
    private String deviceNameVice;

    /** 设备编码 */
    @Excel(name = "设备编码")
    private String deviceCode;

    private String num;

    /** 站点id */
    @Excel(name = "站点id")
    private String siteId;

    /** 站点编码 */
    @Excel(name = "站点编码")
    private String siteCode;

    /** 站点名称 */
    @Excel(name = "站点名称")
    private String siteName;

    /** 设备类型 */
    @Excel(name = "设备类型")
    private String deviceType;

    /** 安装时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "安装时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date installTime;

    /** 经度 */
    @Excel(name = "经度")
    private BigDecimal abx;

    /** 维度 */
    @Excel(name = "维度")
    private BigDecimal aby;

    /** 位置 */
    @Excel(name = "位置")
    private String address;

    /** 厂家 */
    @Excel(name = "厂家")
    private String manufactor;

    /** 联系电话 */
    @Excel(name = "联系电话")
    private String contactPhone;

    /** 设备维护单位 */
    @Excel(name = "设备维护单位")
    private String maintainUnit;

    /** 设备维护人 */
    @Excel(name = "设备维护人")
    private String maintainPerson;

    /** 接入类型(GW,ND) */
    @Excel(name = "接入类型(GW,ND)")
    private String accessType;

    /** 设备掉线周期(小时) */
    @Excel(name = "设备掉线周期(小时)")
    private Integer offLineTime;

    /** 真实设备编码 */
    @Excel(name = "真实设备编码")
    @NotNull(message = "真实设备编码不允许为空")
    private String realDeviceCode;

    /** 管线类型(YSG_POINT,YSG_LINE,WSG_POINT,WSG_LINE,HSG_POINT,HSG_LINE) */
    @Excel(name = "管线类型(YSG_POINT,YSG_LINE,WSG_POINT,WSG_LINE,HSG_POINT,HSG_LINE)")
    private String pipeType;

    /** 管点 物探点号 */
    @Excel(name = "管点 物探点号")
    private String pipeWtdh;

    /** 所有管线 */
    @Excel(name = "所有管线")
    private String pipeLines;

    /** 管点 井深 */
    @Excel(name = "管点 井深")
    private Double pipeJs;

    /** 片区主键 */
    @Excel(name = "片区主键")
    private Long areaId;

    /** 片区编码 */
    @Excel(name = "片区编码")
    private String areaCode;

    /** 片区名称 */
    @Excel(name = "片区名称")
    private String areaName;

    /** 泵站主键 */
    @Excel(name = "泵站主键")
    private Long pumpStationId;

    /** 泵站名称 */
    @Excel(name = "泵站名称")
    private String pumpStationName;

    /** 污水厂id */
    @Excel(name = "污水厂id")
    private Long sewageId;

    /** 污水厂名字 */
    @Excel(name = "污水厂名字")
    private String sewageName;

    @Excel(name = "设备最后回传数据时间", dateFormat = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date deviceLastTime;

    /** 泵站污水厂分区id(根据分区确定的本区域下设备) */
    @Excel(name = "污水厂服务范围")
    private Long sewagePumpRangeId;

    /** 泵站污水厂分区name(根据分区确定的本区域下设备) */
    @Excel(name = "污水厂服务范围名字")
    private String sewagePumpRangeName;

    /** 查询条件 设备类型集合 */
    private List<String> deviceTypes;
    /** 查询条件 泵站ids集合 */
    private List<Long> pumpStationIds;

    /**查询条件 站点名称集合*/
    List<String> siteNames;

    /** 图片文件id */
    private String imgId;

    /** 视频文件id */
    private String videoId;
    /** 视频文件File对象 */
    private SysFile videoFile;

    private String sensorType;
}
